A clothing manufacturer “Omega Stitch” fulfils requests for multiple external corporate clients , the manufacturer allows each client to access analytical data regarding their orders via their Pyramid instance.
Each clients data is held within its own separate database on the manufacturers IMDB server, which is located on a tenant called “OmegaStitch”.
The manufacturer employs a standard database schema for each of its clients within an IMDB data source hosted within the “OmegaStitch” central tenant.
The deployment of the Xtender engine in “Database” mode, allows for the manufacturer to create a common semantic model to provide a standard platform for the reporting content to be created upon. The Xtender service redirects the requests to the client specific database.
For this example there are 3 clients , Iota Sports, Kappa Clothing and Lamda Athletic. Each client has their own tenant on the Pyramid platform where their user ids will be located.
Pre-requisites
To allow for the end users to access a common semantic model, databases and data sources across a number of tenants the instance must be enabled for cross tenant roles and cross tenant content.
This is configured within the admin console, see Content Settings for more details
Configure Xtender on the ‘Master’ tenant data source
To allow Xtender to control the redirection requests of database requests to other databases based upon the tenant a user belongs to, we need to configure the data source containing the database to be redirected (and thereby any data model based on that database).
Within the admin console > Data Source, within the “Omega IMDB” data source and the General settings tab the “Xtender Engine” is configured to function in “Database” mode.
Configure Xtender mapping on the ‘Master’ database
The Xtender feature requires mapping a data source to the relevant client databases. To achieve a common semantic data model, a master database is necessary for creating the model.
The 'OrdersDatabase' in the 'Omega IMDB' data source will function as the master database because it shares the same schema as the client databases.
The mapping configuration is done in the admin console: Source Manager. Within the master 'OrdersDatabase', the 'Xtender Databases' tab allows you to map the databases for each client tenant.
The configuration settings redirect users based on their tenant. For example, users from the 'Iota Sports' tenant connecting to the 'OrdersDatabase' database are redirected to the 'IotaSports' database. Users from the 'Kappa Clothing' and 'Lambda Athletic' tenants are redirected to the 'KappaClothing' and 'LambdaAthletic' databases, respectively.
Additionally, the roles from the client tenants must be added to the master 'OrdersDatabase' database with 'Read' permission. This is only necessary for the master database; client roles do not require permission for databases that are targets of redirection from this database.
Semantic Model
Semantic models created against the master 'OrdersDatabase' database will source their data from the configured redirected databases. Consequently, no additional Pyramid-specific configuration is needed for the model or any related content (such as dashboards) to utilize this. The only requirement is that the roles from the client tenants have 'Read' permission to the semantic model.
Example of a user from Kappa Selling accessing analytical content connecting to the common semantic model connected to the master database ‘OrdersDatabase’